/**
 * @author: Hejh(3010733382@qq.com)
 * @description: 本文件用于设置各种错误响应码实体
 */

/**
 * @author: Hejh(3010733382@qq.com)
 * @description: 创建错误实体
 * @param {*} code
 * @param {*} message
 */
function genError(code, message) {
  let error = {}
  error.code = code
  error.message = message
  return error
}

// 用户模块错误码
const ERROR_USER_CODE = {
  PARAMS_SCHEMA_ERROR: genError(110000, '参数格式错误'),
  USERNAME_DUMP_ERROR: genError(120001, '用户名被占用'),
  EMAIL_DUMP_ERROR: genError(120002, '邮箱被占用'),
  PHONE_DUMP_ERROR: genError(120003, '手机号被占用'),
  USERNAME_PASSWORD_ERROR: genError(120004, '用户名和密码不匹配'),
  LOGIN_FORBID: genError(140005),
  CREATE_USER_ERROR: genError(130006, '用户创建失败'),
  USER_TOKEN_ERROR: genError(110007, '无效的token'),
  UPDATE_USERINFO_ERROR: genError(130008, '更新用户信息失败'),
  UPDATE_PWD_ERROR: genError(130009, '更新密码失败'),
  REGISTER_CLOSE_ERROR: genError(190010, '注册功能未开放'),
  SYSTEM_ROLE_ERROR: genError(110011, '系统角色ID错误'),
  DEP_ID_ERROR: genError(110012, '部门ID有误'),
  DEP_NAME_ERROR: genError(110013, '部门名称重复'),
  DEP_CREATE_ERROR: genError(130014, '部门创建失败'),
  DEP_UPDATE_ERROR: genError(130015, '部门更新失败'),
  DEP_SET_SIZEMAX_ERROR: genError(130016, '部门设置容量失败'),
  DEP_DEL_ERROR: genError(130017, '部门删除失败'),
  DEP_SORT_ERROR: genError(130018, '部门排序失败'),
  ROLE_ID_ERROR: genError(110019, '角色ID有误'),
  ROLE_NAME_ERROR: genError(110020, '角色名称重复'),
  ROLE_CREATE_ERROR: genError(130021, '角色创建失败'),
  ROLE_UPDATE_ERROR: genError(130022, '角色更新失败'),
  ROLE_DEL_ERROR: genError(130023, '角色删除失败'),
  ROLE_SORT_ERROR: genError(130024, '角色排序失败'),
  PERMISSION_ID_ERROR: genError(110025, '权限ID有误'),
  USER_DEP_ID_ERROR: genError(110026, '用户——部门ID有误'),
  USER_ID_ERROR: genError(110027, '用户ID有误'),
  USER_DEP_MOVE_ERROR: genError(130028, '用户迁移部门失败'),
  USER_DEP_COPY_ERROR: genError(130029, '用户添加到部门失败'),
  USER_DEP_REMOVE_ERROR: genError(130030, '部门移除成员失败'),
  USER_DEP_SET_SIZEMAX_ERROR: genError(130031, '部门设置成员容量大小失败'),
  USER_STATUS_ERROR: genError(130032, '设置用户账号状态失败'),
  USER_DEL_ERROR: genError(130033, '删除用户失败'),
  NOTICE_ID_ERROR: genError(110034, '通知ID有误'),
  NOTICE_CREATE_ERROR: genError(130035, '通知创建失败'),
  NOTICE_UPDATE_ERROR: genError(130036, '通知更新失败'),
  NOTICE_DEL_ERROR: genError(130037, '通知删除失败'),
  NOTICE_SORT_ERROR: genError(130038, '通知排序失败'),
  SCHEDULE_TASK_ID_ERROR: genError(110039, '计划任务ID有误'),
  SCHEDULE_TASK_NAME_ERROR: genError(110040, '计划任务名称有误'),
  SCHEDULE_TASK_URL_ERROR: genError(110041, '计划任务请求url有误'),
  SCHEDULE_TASK_METHOD_ERROR: genError(110042, '计划任务内置方法有误'),
  SCHEDULE_TASK_TIME_ERROR: genError(110043, '计划任务时间不满足CRON表达式'),
  SCHEDULE_TASK_CREATE_ERROR: genError(130044, '计划任务创建失败'),
  SCHEDULE_TASK_UPDATE_ERROR: genError(130045, '计划任务更新失败'),
  SCHEDULE_TASK_DEL_ERROR: genError(130046, '计划任务删除失败'),
  SCHEDULE_TASK_SORT_ERROR: genError(130047, '计划任务排序失败'),
  ROLE_USER_ERROR: genError(110048, '角色被使用中，无法删除'),
  STORAGE_ORIGIN_ID_ERROR: genError(110049, '存储源ID有误'),
  STORAGE_ORIGIN_NAME_ERROR: genError(110050, '存储源名称有误'),
  STORAGE_ORIGIN_CREATE_ERROR: genError(130051, '存储源创建失败'),
  STORAGE_ORIGIN_UPDATE_ERROR: genError(130052, '存储源更新失败'),
  STORAGE_ORIGIN_DEL_ERROR: genError(130053, '存储源删除失败'),
  STORAGE_ORIGIN_LINK_ERROR: genError(130054, '存储源连接失败'),
  STORAGE_ORIGIN_SET_DEFAULT_ERROR: genError(130055, '设置默认存储源失败'),
  DEP_PID_ERROR: genError(130056, '父级部门ID有误，不能当作当前部门的父部门'),
  DEP_HAS_SUB_ERROR: genError(110056, '当前部门存在子部门，无法删除'),
  USER_SET_ROLE_ERROR: genError(130057, '设置用户系统角色失败'),
  USER_SET_SIZE_MAX_ERROR: genError(130058, '设置用户个人空间大小失败'),
  USER_SET_OPTION_ERROR: genError(130059, '用户配置更新失败'),
  USER_SET_NICKNAME_ERROR: genError(130060, '用户设置昵称失败'),
  USER_SET_EMAIL_ERROR: genError(130061, '用户设置邮箱失败'),
  NICKNAME_DUMP_ERROR: genError(130062, '昵称不能重复'),
  EMAIL_NOT_EXIST_ERROR: genError(130063, '邮箱不存在'),
  CODE_SEND_ERROR: genError(130064, '发送验证码失败'),
  CODE_SEND_LIMIT_ERROR: genError(130065, '验证码在一分钟只能发送一次'),
  CODE_MSG_ERROR: genError(110066, '验证码失效'),
  SLIDE_CODE_GEN_ERROR: genError(130067, '滑块验证码获取失败'),
  SCHEDULE_TASK_RUN_ERROR: genError(130068, '计划任务手动运行失败'),
  SCHEDULE_TASK_IS_CLOSE: genError(130069, '请先开启计划任务')
}

// 系统模块错误码
const ERROR_SYSTEM_CODE = {
  SYSTEM_ERROR: genError(999999, '系统异常'),
  PARAMS_SCHEMA_ERROR: genError(910000, '参数格式错误'),
  SYSTEM_OPTION_ERROR: genError(930001), // 系统配置项更新错误
  DATE_FORMAT_ERROR: genError(910002, '日期格式错误'),
  ROUTER_NOT_MATCH_ERROR: genError(910003, '路由不存在'),
  PERMISSION_ERROR: genError(940004, '系统权限不足')
}

// 文件模板错误码
const ERROR_SOURCE_CODE = {
  PARENT_ID_ERROR: genError(220000, '目录ID错误'),
  CREATE_DIR_ERROR: genError(230001, '创建文件夹失败'),
  SOURCE_ID_ERROR: genError(220002, '用户文件ID错误'),
  FILENAME_DUMP_ERROR: genError(220003, '用户文件名重复'),
  RENAME_ERROR: genError(230004, '文件重命名失败'),
  MOVE_PARENTID_SAME_ERROR: genError(220005, '不能移动到同一目录下'),
  COPY_PARENTID_SAME_ERROR: genError(220006, '不能复制到同一目录下'),
  MOVE_FILE_ERROR: genError(230007, '移动文件失败'),
  OVERVIDE_ERROR: genError(220008, '文件和文件夹不能相互覆盖'),
  DEL_FILE_ERROR: genError(230009, '彻底删除文件失败'),
  BIN_FILE_ERROR: genError(230010, '文件放入回收站失败'),
  SOURCE_ID_ERROR: genError(210011, '文件ID有误'),
  CREATE_FILE_ERROR: genError(230012, '新建文件失败'),
  UPLOAD_FILE_ERROR: genError(230013, '上传文件失败'),
  FILE_CHUNK_INFO_NO_ERROR: genError(220014, '请先进行文件协商'),
  FILE_CHUNK_ERROR: genError(220015, '上传的分片不合法'),
  BIN_SOURCE_ID_ERROR: genError(220016, 'bin-source-id有误'),
  COPY_SOURCE_ERROR: genError(230017, '复制文件失败'),
  MOVE_SOURCE_ERROR: genError(230018, '移动文件失败'),
  DOWNLOAD_SOURCE_ERROR: genError(230019, '下载文件失败'),
  CANCEL_SHARE_ERROR: genError(230020, '取消分享失败'),
  SOURCE_AUTH_ERROR: genError(230021, '资源授权失败'),
  FILE_COMBINE_ERROR: genError(230022, '文件合并失败'),
  FILE_SIZE_MAX_ERROR: genError(230023, '空间容量不足')
}

// 分享模块错误码
const ERROR_SHARE_CODE = {
  SHARE_ID_ERROR: genError(310001, '分享ID有误'),
  SHARE_NAME_ERROR: genError(310002, '分享名称重复'),
  SHARE_CREATE_ERROR: genError(330003, '分享创建失败'),
  SHARE_UPDATE_ERROR: genError(330004, '分享更新失败'),
  SHARE_DEL_ERROR: genError(330005, '分享删除失败'),
  SHARE_STATUS_RRROR: genError(330006, '分享开启/关闭失败')
}

module.exports = {
  ERROR_USER_CODE,
  ERROR_SYSTEM_CODE,
  ERROR_SOURCE_CODE,
  ERROR_SHARE_CODE
}
